#ifndef _PLATFORM_GPIO_H
#define _PLATFORM_GPIO_H

#include <N76E003.h>

/**
 * enum io_mode - 
 * @IN: 输入
 * @IN_OUT: 双向
 * @PUSH_PULL_OUT: 推挽输出
 * @OPEN_DRAIN_OUT: 开漏输出
 */
enum io_mode {
	IN_OUT = 0x0,
	PUSH_PULL_OUT = 0x1,
	IN = 0x2,
	OPEN_DRAIN_OUT = 0x3
};

/** 
 * gpio_set_mode - 设置引脚io模式
 * @port: 端口号
 * @pin: 引脚号
 * @mode: 见io_mode
 */
#define gpio_set_mode(port, pin, mode) \
	mode & 0x1 ? set_bit(P##port##M1, pin) : clr_bit(P##port##M1, pin); \
	mode & 0x2 ? set_bit(P##port##M2, pin) : clr_bit(P##port##M2, pin)

#endif
